The present invention relates to the field of computer graphics, and in particular to methods and apparatus for animating computer generated characters. Many computer graphic images are created by mathematically modeling the interaction of light with a three dimensional scene from a given viewpoint. This process, called rendering, generates a two-dimensional image of the scene from the given viewpoint, and is analogous to taking a photograph of a real-world scene. Animated sequences can be created by rendering a sequence of images of a scene as the scene is gradually changed over time. A great deal of effort has been devoted to making realistic looking rendered images and animations.
Animation, whether hand-drawn or computer generated, is as much an art as it is a science. Animators must not only make a scene look realistic, but must also convey the appropriate dramatic progression and emotional impact required by the story. This is especially true when animating characters. Characters drive the dramatic progression of the story and establish an emotional connection with the audience.
Effective walk animations are often an important contribution to the expressiveness of a character's animation. A character's walk or gait can be used to express the character's emotions. Additionally, walking, running, or other types of character motion can add excitement to a scene, as compared with scenes having motionless characters. At the very least, effective and realistic walk animations reinforce an audience's suspension of disbelief. However, creating convincing walk animations with the appropriate emotional expression and level of energy is particularly challenging and time consuming.
One of the difficulties in creating walk animations arises from the kinematic complexity of walking itself. During a typical walk animation for a bipedal character model, the foot first touches the ground at the heel. As the character's weight shifts forward, the foot rotates around the heel contact point until it is flat against the ground surface. Then, as the character's weight shifts further forward, the foot begins to lift off the ground, typically by bending and rotating around the ball of the foot. Finally, the foot lifts off the ground entirely and the character's weight is transferred to the other foot.
Many animation tools make it difficult to mimic these kinematic attributes of walking. Typically, animation tools enable animators only to rotate the foot around specifically defined locations, such as the ankle or ball of the foot. As animators apply rotations to these locations, the foot of a character model often slides forward or backwards relative to the ground plane. Additionally, these rotations can also cause the foot to lift off the ground plane prematurely, or to penetrate below the ground plane.
As a result of these effects, the correct positioning of the foot of a character model during a walk animation is often an iterative process. First, the animator places the foot at the desired location relative to the ground plane. The animator then specifies the desired foot rotation around the heel and/or ball. This causes the contact point of the foot to shift position relative to the ground; thus the animator must then reposition the foot back to the desired location. As adjustments are made to the foot rotation, the animator must make further adjustments to the position of the foot. Because of the complexity and time required for these iterative adjustments, animators tend to construct scenes in which character models' feet are hidden, so as to avoid this issue entirely.
It is therefore desirable for a system and method to enable animators to efficiently specify the positions and rotations of the feet of character models. It is further desirable that the system and method automatically adjust the position of the foot of a character model in response to a rotation to eliminate unwanted shifts in position of the foot contact point. It is also desirable that the system and method be suitable for rotations of the foot of a character model around the heel contact point, the ball contact, and any other foot contact point.